

//获取地址栏的参数
function getQueryString(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    var r = decodeURI(window.location.search).substr(1).match(reg); //search,查询？后面的参数，并匹配正则
    if (r != null) return unescape(r[2]);
    return null;
}

/**
 * 加载数据字典然后转换成下拉项目
 * selectName 用于jq选择 字符串
 * item就是后台dic_t_sysdic表的item项
 * callback回调 函数
 * 调用 getDicTSysdicConvertSelect("#financingStage","融资阶段",assignmentFinancingStageDicArr);
 * 用的是数据字典表的id和value
 */
function getDicTSysdicConvertSelect(selectName,item,callback){
    if( !selectName ){//两个都必须有值
        alert("请传递jquery选择器！");
        return;
    }
    if( !item ){
        alert("请传递查询数据字典的item项！");
        return;
    }
    let formData = new FormData();
    formData.append("item",item)
    $.ajax({
        type: "POST",//请求类型
        url: "/dic_t_sysdic/get_by_item.json",//请求的url
        data: formData,//请求参数
        processData:false,// 使用formData传参很重要的配置
        contentType:false,// 使用formData传参很重要的配置
        success: function (res) {//data：返回数据（json对象）
           if(res.code === 0){
               $(selectName).html("");
               let options = "";
               for (let i = 0; i < res.data.length; i++) {
                   options += "<option value=\"" + res.data[i].ID + "\">" + res.data[i].Value + "</option>";
               }
               $(selectName ).html(options);
               console.log(selectName);
               console.log(options);

               if(callback){
                   callback(res.data);
               }
           }else{
               alert(res.msg);
           }
        },
        error: function (data) {//当访问时候，404，500 等非200的错误状态码
            alert("获取数据字典失败");
        }
    });
}

/**
 * 加载数据字典然后转换成下拉项目
 * selectName 用于jq选择 字符串
 * pid就是后台dic_t_sysdic表的pid项
 * callback回调 函数
 * 调用 getDicTSysdicConvertSelect("#financingStage","融资阶段",assignmentFinancingStageDicArr);
 * 用的是数据字典表的value和item
 */
function getDicTSysdicConvertSelectByPid(selectName,pid,callback,type){
    if( !selectName ){//两个都必须有值
        alert("请传递jquery选择器！");
        return;
    }
    if( !pid ){
        alert("请传递查询数据字典的pid项！");
        return;
    }
    let formData = new FormData();
    formData.append("pid",pid)
    $.ajax({
        type: "POST",//请求类型
        url: "/dic_t_sysdic/get_by_pid.json",//请求的url
        data: formData,//请求参数
        async:false,//取消异步请求
        processData:false,// 使用formData传参很重要的配置
        contentType:false,// 使用formData传参很重要的配置
        headers: { 'adminUid': localStorage.getItem('adminUid'), 'token': localStorage.getItem('token'), 'form': 'pc' },
        success: function (res) {//data：返回数据（json对象）
            if(res.code === 0){
                $(selectName).html("");
                let options = "";
                for (let i = 0; i < res.data.length; i++) {
                    if(type==3){//第三种 id配value
                        options += "<option value=\"" + res.data[i].id + "\">" + res.data[i].value + "</option>";
                    }else if(type==2){//第二种 id 配 item
                        options += "<option value=\"" + res.data[i].id + "\">" + res.data[i].item + "</option>";
                    }else{//默认 value 配 item
                        options += "<option value=\"" + res.data[i].value + "\">" + res.data[i].item + "</option>";
                    }
                }
                $(selectName ).html(options);
                console.log(selectName);
                console.log(options);

                if(callback){
                    callback(res.data);
                }
            }else{
                alert(res.msg);
            }
        },
        error: function (data) {//当访问时候，404，500 等非200的错误状态码
            alert("获取数据字典失败");
        }
    });
}

/**
 *获取数据字典的方法 适用于elementui
 * dicItem 需要获取的数据字典的值
 * assignmentObject  最终赋值的对象
 * vueObject vue对象
 * 只是获取数据，具体value使用id还是这个value  得看代码
 */
function getDicTSysdicMethodEL(type,assignmentObject,vueObject){

    let that = this;
    if(type){
        requestApi("sysDic/get_by_type",{"type":type},'post',function(res){
            if(res.code === 0){
                let jsonArr =  [];
                for(let i = 0 ; i < res.data.length ; i++ ){
                    let json = {
                        "label":res.data[i].name,
                        "id":res.data[i].value+"",
                        "value":res.data[i].value+"",
                    }
                    jsonArr.push(json);
                }
                if(assignmentObject){
                    if(assignmentObject.indexOf(".")>-1){
                        vueObject.$root._data[assignmentObject.split(".")[0]][assignmentObject.split(".")[1]] = jsonArr;
                    }else{
                        vueObject.$root._data[assignmentObject] = jsonArr;
                    }
                }
            }
        })
    }
}

//生成是否的下拉选 0 1
function isOrNotSelectZeroOne(selectName){
    if( !selectName ){//两个都必须有值
        alert("请传递jquery选择器！");
        return;
    }
    $(selectName).html("");
    let options = `
        <option value="1">是</option>
        <option value="0">否</option>       
    `;
    $(selectName ).html(options);
}

//设置城市下拉选
function setCitySelect(jqueryId,provinceId,cityId){
    if(provinceId && provinceId != '0' ){
        requestApi("address/city", {id:provinceId} , "POST", function(res){//回调
            $("#"+jqueryId).html("");
            var options = "<option value=\"\">市</option>";
            for(var i = 0; i < res.data.length; i++){
                options += "<option value=\""+res.data[i].id+"\">"+res.data[i].name+"</option>";
            }
            $("#"+jqueryId).html(options);
            if(cityId){
                for(var i=0;i<document.getElementById(jqueryId).options.length;i++)
                {
                    if(document.getElementById(jqueryId).options[i].value == cityId)
                    {
                        document.getElementById(jqueryId).options[i].selected=true;
                        break;
                    }
                }
            }
        });
    }

}

//设置区域下拉选
function setAreaSelect(jqueryId,cityId,areaId){
    if(cityId && cityId != '0' ){
        requestApi("address/getAreaByCityId", {id:cityId} , "POST", function(res){//回调
            $("#"+jqueryId).html("");
            var options = "<option value=\"\">区</option>";
            for(var i = 0; i < res.data.length; i++){
                options += "<option value=\""+res.data[i].id+"\">"+res.data[i].name+"</option>";
            }
            $("#"+jqueryId).html(options);
            if(areaId){
                for(var i=0;i<document.getElementById(jqueryId).options.length;i++)
                {
                    if(document.getElementById(jqueryId).options[i].value == areaId)
                    {
                        document.getElementById(jqueryId).options[i].selected=true;
                        break;
                    }
                }
            }
        });
    }
}

//设置单个下拉选选中
function setSingleSelectSelectedByElementId(elementId,value){
    for(let i = 0 ; i < document.getElementById(elementId).options.length;i++)
    {
        if(document.getElementById(elementId).options[i].value == value)
        {
            document.getElementById(elementId).options[i].selected=true;
            break;
        }
    }
}

/**
 * summernote富文本的自动排版
 * selectName 是jquery的选择器
 */
function autoTypesettingSummernote(selectName){
    if(selectName){
        let content = $(selectName).summernote('code');//获取富文本的内容
        $(selectName).summernote('code', reset(content));//重新赋值回去
    }
}


/**
 * 富文本下面的自动去掉所有链接的功能按钮
 * selectName 是jquery的选择器
 */
function autoRemoveAllLink(selectName) {
    if(selectName){
        let content = $(selectName).summernote('code');//获取富文本的内容
        let reg = new RegExp("<a.*?>(.*?)</a>", "g");
        $(selectName).summernote('code', content.replace(reg, "$1"));//重新赋值回去
    }
}

/**
 * 富文本的内容自动排版  ①段落前空两格；②图片自动删除；③空格自动删除排版
 * content 富文本里面的内容 /gi表示忽略大小写 .*?就是懒惰模式
 * ?是  0到1次匹配  *0到多次匹配
 * https://blog.csdn.net/qq_36340642/article/details/79352876
 * i 不区分(ignore)大小写； g 全局(global)匹配(字符串从左到右，找到每个符合条件的都记录下来，直到字符串结尾位置)
 * m 多(more)行匹配 若原来的字符存在\n 并且正则表达式有^ $情况下 和g一起使用实现全局匹配 因为存在换行时默认会把换行符作为一个字符任务匹配字符串是个单行
 * g只匹配第一行，添加m之后实现多行，每个换行符之后就是开始
 * s 默认的圆点 . 是 匹配除换行符 \n 之外的任何单字符，加上s之后, . 中包含换行符
 *
 * 可能出现的问题： 多行如果都是<p>的处理
 */
function reset(content) {
    var reg = new RegExp("<a.*?>(.*?)</a>", "g");//<a.*?>这个?表示去除贪婪模式 匹配一次
    var r = /style="[^"]*"/g;
    content = content.replace(reg, "$1");//$1就是指上两行代码中的(.*?) 分组 这个主要是为了去掉a标签 但是不去掉a标签里面的内容
    content = content.replace(r, "$1");//这个代码这么写看不懂，$1用不到 因为r对应的正则没有分组的内容 这行代码相当于没有用
    content = content.replace(/div/gi, "p");//去掉div标签 变为p标签
    content = content.replace(/(<(?!(\/?(img|a|p)\b))[^>]*>)/gi, "");// ?!查找后面不是/img /a /p 这些结束标签 ， 把这些结束标签变为空串 \b好像是处理英文的
    content = content.replace(/&nbsp;|[\s|　]+/gm, "");//去掉空格 手动空格变为空串
    content = content.replace(/(^[\r\n]+)|([\r\n]+$)/g, "");//去掉换行符号(\r\n) 这里的表示如果content开头是换行，结束是换行那么需要去掉
    content = content.replace(/([\r\n])+/gm, "</p>$1<p>　　");//多个回车换行 变为一个
    content = content.replace(/<p.*?>/gm, "<p>　　");//把p标签里面的内容开头空两格
    return content;
}

/**
 * post请求form表单形式导出文件
 * url 请求地址
 * queryData 就是请求数据 这里传递 json数据格式
 * java要用post接收 不要写@RuquestBody和@RequestParam  直接一个实体类接收就可以了
 */
function postFormDataExport(url,queryData){
    // var $iframe = $('<iframe id="down-file-iframe" style="display:none;" target="_self"/>');
    // var $form = $('<form target="down-file-iframe" method="POST" />');
    // $form.attr('action', url);
    // for (var key in queryData) {//遍历json
    //     $form.append('<input type="hidden" name="' + key + '" value="' + queryData[key] + '" />');
    // }
    // $iframe.append($form);
    // $(document.body).append($iframe);
    // $form[0].submit();
    // $iframe.remove();
    //
    var form = $('<form></form>');
    form.attr('action', url);
    form.attr('method', 'post');
    for (var item in queryData) {
        var input = $('<input type="text" />');
        input.attr('name', item);
        input.attr('value', queryData[item]);
        form.append(input);
    }
    console.log(form.html());
    form.appendTo('body').submit().remove();
}

function axiosExportPost(url,queryData){
    axios({
        method:"POST",
        url:url,
        data : JSON.stringify(queryData),
        responseType: 'blob',
        headers: { 
            'Content-Type': 'application/json' ,
            'adminUid':localStorage.getItem('adminUid'),
            "token":localStorage.getItem('token')
        },
    }).then(function(res){
        console.log(res);
        let fileName = "";
        if(res.headers["content-disposition"]){
            fileName = decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1]);
        }
        var blob = new Blob([res.data]);
        // FileReader主要用于将文件内容读入内存
        var reader = new FileReader();
        reader.readAsDataURL(blob);
        // onload当读取操作成功完成时调用
        reader.onload = function(e) {
            var a = document.createElement('a');
            // 获取文件名fileName
            //var fileName = '品牌数据导出.xlsx';
            a.download = fileName;
            a.href = URL.createObjectURL(blob);
            document.body.appendChild(a);
            a.click();
            document.body.removeChild(a);
            alert(fileName+"下载成功");
        }
    });
}

//查询城市并且设置某个项的值 查询城市设置或者重置
//根据省份查询所有的城市 如果有城市跟cityid相同 ，那么就是勾选的 cityJqueryId就是展示城市的下拉框
function queryCityAndSetOrReset(provinceId,cityId,cityJqueryId){
    if(provinceId != '' && provinceId != null){
        $.ajax({
            type:"POST",//请求类型
            url:"/address/city",//请求的url
            contentType: "application/json;charset=UTF-8",
            data:JSON.stringify({id:provinceId}),//请求参数
            dataType:"json",//ajax接口（请求url）返回的数据类型
            success:function(data){//data：返回数据（json对象）
                console.log(data)
                $(cityJqueryId).html("");
                var options = "<option value='0'>市</option>";
                for(var i = 0; i < data.data.length; i++){
                    if(data.data[i].id.toString()==cityId){
                        options += "<option selected value=\""+data.data[i].id+"\">"+data.data[i].name+"</option>";
                    }else {
                        options += "<option value=\""+data.data[i].id+"\">"+data.data[i].name+"</option>";
                    }

                }
                $(cityJqueryId).html(options);
            },
            error:function(data){//当访问时候，404，500 等非200的错误状态码
                alert("加载二级分类失败！");
            }
        });
    }else{
        $(cityJqueryId).html("");
        var options = "<option value=\"\">--请选择--</option>";
        $(cityJqueryId).html(options);
    }
}

/**
 * firDivId第一行 jquery选择器 最后替换的内容是区域
 * secondId第二行 jquery选择器 最后替换的html的内容是左边对应的是某个区域下的省份 右边是对应的省份下面的城市
 * 具体的效果就是http://www.winshangdata.com/brandDetail?brandId=4680这个页面的拓展区域  第一行是区域 下面是一个每一个省份 对应的城市有哪些
 * ishowSeconnd:第一种展示 方式是在下方 第二种展示方式是一个弹窗
 * 使用方式
 *  <div id="tuozhanCityAreaShowId"></div><!--拓展城市区域展示的部分-->
    <div id="tuozhanCityAreaDetailId"></div><!--拓展城市区域展示的详情包含省份，城市-->
    convertCityComponent(convertCityExpandCity);//这个方法再utilJs.js文件中
    showProvinceCityArrWrapDataMethod(0,"#tuozhanCityAreaDetailId","#tuozhanCityAreaDetailDetailId");//这个方法再utilJs.js文件中
 */
function showProvinceCityArrWrapDataMethod(index,firDivId,secondId,ishowSeconnd=false){
    let htmlStr = "";
    htmlStr+="<div style=\"display:flex;margin-bottom:22px;margin-top: 27px;\">"
    for(let ii=0;ii<finalShowProvinceCityArrWrapData.length;ii++){
        if(index==ii){//勾选中的变为蓝色
            htmlStr +="<div style='margin-right:50px;color:#1989fa;' onclick='showProvinceCityArrWrapDataMethod("+ii+",\""+firDivId+"\",\""+secondId+"\","+ishowSeconnd+")'>" + finalShowProvinceCityArrWrapData[ii].regionName +"("+finalShowProvinceCityArrWrapData[ii].size+")"+ "</div>";
        }else{
            htmlStr +="<div style='margin-right:50px;' onclick='showProvinceCityArrWrapDataMethod("+ii+",\""+firDivId+"\",\""+secondId+"\","+ishowSeconnd+")'>" + finalShowProvinceCityArrWrapData[ii].regionName +"("+finalShowProvinceCityArrWrapData[ii].size+")"+ "</div>";
        }
    }
    htmlStr+="</div>"

    let htmlStr2 = "<div style='display:flex;flex-direction:column;'>";
    for(let ii=0;ii<finalShowProvinceCityArrWrapData[index].provinces.length;ii++){
        htmlStr2 += "<div style='display:flex;margin-bottom: 10px;'>";
        htmlStr2 +="<div style='width:100px;'>" + finalShowProvinceCityArrWrapData[index].provinces[ii].provinceName +":</div>";
        htmlStr2 +="<div>";
        for(let jj=0;jj<finalShowProvinceCityArrWrapData[index].provinces[ii].citys.length;jj++){
            htmlStr2 += finalShowProvinceCityArrWrapData[index].provinces[ii].citys[jj].cityName+"&nbsp;&nbsp;";
        }
        htmlStr2 += "</div>";
        htmlStr2 += "</div>";
    }
    htmlStr2+="</div>";
    if(ishowSeconnd){//第二种展示方式
        $(firDivId).css('display','block');
        $(secondId).html(htmlStr+htmlStr2);
    }else{
        $(firDivId).html(htmlStr);//区域的内容
        $(secondId).html(htmlStr2);
    }
}
//去除小数点后面的内容
function removePointAfterContent(content){
    if( typeof(content)=='string' && content && (content.indexOf(".")>-1) ){
        return content.substr(0,content.indexOf("."));
    }
    return content;
}

//去除字符0并且小数点后面的内容
function removeZeroAndPointAfterContent(content){
    if( typeof(content)=='string' && content && (content.indexOf(".")>-1) ){
        if(content.substr(0,content.indexOf(".")) =='0'){
            return "";
        }
        return content.substr(0,content.indexOf("."));
    }else if(content =='0'){
        return '';
    }
    return content;
}

//判断两个数组是否重复
function judgeTwoArrIsReqpeat(array1,array2){
    if(array1 && array2 && array1 instanceof Array && array2 instanceof Array){
        if(array1.length != array2.length){
            return false;
        }
        //临时数组存放
        var tempArray1 = [];//临时数组1
        var tempArray2 = [];//临时数组2

        for(var i=0; i<array2.length; i++){
            if (!tempArray1.hasOwnProperty(array1[i])) {
                tempArray1[array2[i]]=true;
            }
        }

        for(var i=0;i<array1.length;i++){
            if(!tempArray1[array1[i]]){
                tempArray2.push(array1[i]);//过滤array1 中与array2 相同的元素；
            }
        }
        if(tempArray2.length>0){
            console.log(tempArray2)
            return false;
        }else{
            return true;
        }
    }else{
        return true;
    }


}

//展示职位
function showBuMenPositionOtherzhiwei(isLinkmannew,object){
    let result = "";
    if(object){
        if(isLinkmannew){//如果是linkmannew的数据  新
            let _obj = JSON.parse(JSON.stringify(object));
            let userZhiWeiArr = ["董事长","董事长助理","执行董事","总裁","总裁助理","副总裁","总经理","总经理助理","常务副总经理",
                "副总经理","总设计师","总工程师","总监","经理","主任","主管","专员"]
            if(_obj.userZhiWei){
                let flag = true;
                for(let kj = 0;kj<userZhiWeiArr.length;kj++){
                    if(userZhiWeiArr[kj] == _obj.userZhiWei){
                        flag = false;
                        break;
                    }
                }
                if(flag){
                    _obj.userZhiWei = "其他职务"+_obj.userZhiWei;
                }
            }
            result = ( _obj.userBuMen || "" ) + ( _obj.userZhiWei || "" ) + ( _obj.otherzhiwei || "" );
        }else{//如果是linkman的数据  旧
            result = ( object.userBuMen || "" ) + ( object.userZhiWei || "" ) + ( object.otherzhiwei || "" );
        }
    }
    return result;
}


/**
 * 获取select下拉选的文本值
 * select只能单选的
 * selectid没有#
 * 就算是bootstrap的下拉选也适用
 * value是0也会获取值的
 */
function customerGetSingleSelectText(selectId,value){
    let result = '';
    if(selectId ){
        for(var i=0;i<document.getElementById(selectId).options.length;i++) {
            if(document.getElementById(selectId).options[i].value == value) {
                result =  document.getElementById(selectId).options[i].text;
                break;
            }
        }
    }
    return result;
}

/**
 * 获取select下拉选的文本值
 * select只能单选的
 * selectid没有#
 */
function customerGetSingleSelectTextExceptZero(selectId,value){
    let result = '';
    if(selectId && value!=0){
        for(var i=0;i<document.getElementById(selectId).options.length;i++) {
            if(document.getElementById(selectId).options[i].value == value) {
                result =  document.getElementById(selectId).options[i].text;
                break;
            }
        }
    }
    //得排除0
    return result;
}

/**
 * 获取select下拉选的文本值 下拉多选
 * 获value的值按照逗号分隔
 * select只能单选的
 * selectid没有#
 */
function customerGetMultleSelectText(selectId,value){
    let result = [];
    if(selectId && value){
        let valueNew = value + "";
        let valueArr = valueNew.split(",");
        for(var i=0;i<document.getElementById(selectId).options.length;i++) {
            for(let j = 0 ; j < valueArr.length ; j++){
                if(document.getElementById(selectId).options[i].value == valueArr[j]){
                    result.push(document.getElementById(selectId).options[i].text);
                }
            }
        }
    }
    return result.toString();
}

//没有元素就隐藏
function noHtmlHide(selectId){
    let innerHTML = document.getElementById(selectId).innerHTML;
    if( !innerHTML || !innerHTML.trim()){//没有值
        document.getElementById(selectId).style.display='none'
    }else{
        document.getElementById(selectId).style.display='block'
    }
}

//去掉四大直辖市 因为这几个东西省份存了一份 然后city也存了一份，需要去除
function removeFourDirectCity(cityName){
    let result = "";
    if(cityName){
        const zhiXiaShi = ['重庆', '上海', '北京', '天津'];
        if ( !zhiXiaShi.includes(cityName)) {
            result += cityName;
        }
    }
    return result;
}

//保留四位小数
function retaionFourNumber(value){
    let result ='';
    if(value){
        value =  value.replace("..",".");
        return value.replace(/[^\d\.]/g,"").replace(/^(\d+)\.(\d\d\d\d).*$/,'$1.$2','');
    }
    return result;
}

//保留两位小数
function retaionTwoNumber(value){
    let result ='';
    if(value){
        value =  value.replace("..",".");
        return value.replace(/[^\d\.]/g,"").replace(/^(\d+)\.(\d\d).*$/,'$1.$2','');
    }
    return result;
}

//判断手机号码 现在很多都是位数不同
function judgeMobile(mobile){
    if(!mobile){
        return true;
    }
    //console.log(/^[0-9-+\/\s]{11}$/.test(mobile));
    //mobile = mobile.replace("\u202D/g","").replace("\u202C","").replace("\u202E","");//不知道为什么要这么写 不写有概率报错 不敢改
    //mobile = mobile.replace("//\u202D/g","").replace("\u202C","").replace("\u202E","");//不知道为什么要这么写 不写有概率报错 不敢改
    mobile = mobile.replace(/[\u200b-\u200f\uFEFF\u202a-\u202e]/g, "")
    //console.log(/^[0-9-+\/\s]{11}$/.test(mobile));
    return /^[0-9-+\/\s]{11}$/.test(mobile);
    //return /^1[3|4|5|7|8][0-9]{9}$/.test(mobile)
}

function judgeIdCard(idCard){
    if(!idCard){
        return true;
    }
    return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(idCard);
}

//校验邮箱
function judgeEmail(email){
    if(!email){
        return true;
    }
    return /(^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$)/.test(email);
}

//去掉单个字符0
function removeSingleStrZero(str){
    if(!str){
        return "";
    }
    if(str == '0' ){
        return "";
    }
    return str;
}


//去掉富文本的数据 无用的数据
function removeFullTextUseLess(content){
    if(content && typeof(content)=== 'string'){
        content = content.replace("<p><br></p>","");
    }
    return content;
}

function globalSuccessMessage(message=''){
    let htmlDiv = `
        <div style='z-index:999999;top:17px;left: 0px;right: 0px;width: 380px;height: 40px;margin-left:auto;margin-right:auto;
            position: fixed;background-color:#f0f9eb;line-height: :40px;display: flex;justify-content: center;align-items: center;
            border-radius: 10px;color: #67c23a;font-size: 16px; border-color: #e1f3d8;'>
            ${message}
        </div>
    `;
    let successMessageDiv = $(htmlDiv);
    $("body").before(successMessageDiv);
    setTimeout(() => {
        $(successMessageDiv).remove();
    }, 3000);
}

function globalErrorMessage(message= ''){
    let htmlDiv = `
        <div style='z-index:999999;top:17px;left: 0px;right: 0px;width: 380px;height: 40px;margin-left:auto;margin-right:auto;
            position: fixed;background-color:#fef0f0;line-height: :40px;display: flex;justify-content: center;align-items: center;
            border-radius: 10px;color: #f56c6c;font-size: 16px; border-color: #fde2e2;'>
            ${message}
        </div>
    `;
    let successMessageDiv = $(htmlDiv);
    $("body").before(successMessageDiv);
    setTimeout(() => {
        $(successMessageDiv).remove();
    }, 3000);
}

//保留两位小数
//示例 oninput="keepTwoDecimal(this)"
function keepTwoDecimal(obj){
    obj.value = obj.value.replace(/[^\d.]/g,""); //清除"数字"和"."以外的字符
    obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字
    obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个, 清除多余的
    obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
    obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3'); //控制可输入的小数 多少位小数 就在后面补多少个\d\d
}

//计算用户的职位 全局  用户联系人的职位
function calcYhZhiwei(object){
    var userZhiWei = "";
    let userZhiWeiArr = ["董事长","董事长助理","执行董事","总裁","总裁助理","副总裁","总经理","总经理助理","常务副总经理",
        "副总经理","总设计师","总工程师","总监","经理","主任","主管","专员"]
    if(object.userZhiWei && "其他职务" != object.userZhiWei){
        let flag = true;
        for(let kj = 0;kj<userZhiWeiArr.length;kj++){
            if(userZhiWeiArr[kj] == object.userZhiWei){
                flag = false;
                break;
            }
        }
        if(flag){
            object.userZhiWei = "其他职务"+object.userZhiWei;
        }
    }

    userZhiWei = (object.userBuMen || "") + (object.userZhiWei || "")+
        (object.otherzhiwei || "");
    return userZhiWei;
    //dataNewObj.userZhiWei = userZhiWei;
}

/**
 ** 加法函数，用来得到精确的加法结果
 ** 说明：javascript的加法结果会有误差，在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
 ** 调用：accAdd(arg1,arg2)
 ** 返回值：arg1加上arg2的精确结果
 * https://juejin.cn/post/6844903903071322119
 * 最终的就是 相对应的*100 /100
 **/
function accAdd(arg1, arg2) {
    var r1, r2, m, c;
    try {
        r1 = arg1.toString().split(".")[1].length;//小数点后面的位数是多少个
    } catch (e) {
        r1 = 0;
    }
    try {
        r2 = arg2.toString().split(".")[1].length;//小数点后面的位数是多少个
    } catch (e) {
        r2 = 0;
    }
    c = Math.abs(r1 - r2);//绝对值 两个数的小数点的位数相差的绝对值
    m = Math.pow(10, Math.max(r1, r2));//幂运算 如果没有小数点 Math.max(r1, r2)结果为0 最终m的值为1 相差的位数*多少倍
    if (c > 0) {
        var cm = Math.pow(10, c);//幂运算 表示需要乘以多少倍  因为会
        if (r1 > r2) {
            arg1 = Number(arg1.toString().replace(".", ""));
            arg2 = Number(arg2.toString().replace(".", "")) * cm;
        } else {
            arg1 = Number(arg1.toString().replace(".", "")) * cm;
            arg2 = Number(arg2.toString().replace(".", ""));
        }
    } else {//没有小数点的时候的相加
        arg1 = Number(arg1.toString().replace(".", ""));
        arg2 = Number(arg2.toString().replace(".", ""));
    }
    return (arg1 + arg2) / m;
}
/**
 ** 减法函数，用来得到精确的减法结果
 ** 说明：javascript的减法结果会有误差，在两个浮点数相减的时候会比较明显。这个函数返回较为精确的减法结果。
 ** 调用：accSub(arg1,arg2)
 ** 返回值：arg1加上arg2的精确结果
 * https://juejin.cn/post/6844903903071322119
 **/
function accSub(arg1, arg2) {
    var r1, r2, m, n;
    try {
        r1 = arg1.toString().split(".")[1].length;
    } catch (e) {
        r1 = 0;
    }
    try {
        r2 = arg2.toString().split(".")[1].length;
    } catch (e) {
        r2 = 0;
    }
    m = Math.pow(10, Math.max(r1, r2)); //last modify by deeka //动态控制精度长度
    n = (r1 >= r2) ? r1 : r2;
    return ((arg1 * m - arg2 * m) / m).toFixed(n);
}

//判断是否是图片服务器的前缀
function imagePrefixJudge(value){
    let result = false;
    if(value){
       if(value.startsWith("http://img3") || value.startsWith("http://shangwu.winshang.com/member/")
           || value.startsWith("http://yst.winshang.com")){
           result = true;
       }
    }
    return result;
}

//弹出错误的信息
function errAlterWindow(errStr){
    if(errStr){
        alert(errStr);
        throw errStr;
    }
}

//判断数据是否是polygon
function judgeIsPolygon(data){
    if(data){
        if(data instanceof Array){
            for(let i = 0 ;i < data.length ; i++){
                doJugdeIsPolygon(data[i]);
            }
        }else{
            doJugdeIsPolygon(data);
        }
    }
}

function doJugdeIsPolygon(lngLatStr){
    let longLatArr = lngLatStr.split(" ");
    if(longLatArr.length != 2){
        errAlterWindow("经度与纬度之间需要有空格");
    }
    //判断是否是数字
    if( isNaN(longLatArr[0]) || !(longLatArr[0] >= -180 &&  longLatArr[0] <= 180) ){
        errAlterWindow(longLatArr + "的经度不对");
    }
    if( isNaN(longLatArr[1]) || !(longLatArr[1] >= -90 &&  longLatArr[1] <= 90)){
        errAlterWindow(longLatArr + "的纬度不对");
    }
}

/*
<div id="tuozhanCityAreaDetailId" style="width: 90%; height: 100%; background: rgba( 0,0,0 ,0.23); z-index: 200; position: fixed; display:none;" align="center">
    <button style="float:right;margin-top:8px;margin-right:70px;" type="button" onclick='closeTuozhanCityAreaDetailId()'>关闭</button>
    <div style="width: 57%;  background: rgba( 244,244,244 ,0.95);margin-top: 15%;padding:15px; border-radius: 15px;" align="center">
    </div>
</div>
* */

